#pragma once

#include <QWidget>
#include "ui_OptionsPanel.h"
#include "../src_config/configUI.h"
#include <QTabWidget>
#include <QCheckBox>
#include <QVBoxLayout>
#include "../src_dataProcessor/basicData.h"

//namespace Ui {
//	class OptionsPanel;
//}

class OptionsPanel : public QWidget
{
	Q_OBJECT

signals: //信号
	//发送给父类的信号
	void update_request_signal();			// 更新绘图

	void open_res_request_signal();			// 打开Res文件进行查看
	void open_layout_request_signal();		// 打开layout文件,用于寻路
	void reset_request_signal();			// 复位重置
	void random_pin_request_signal();		// 重新生成随机pin
	void pin_decrease_request_signal();		// pin数量减少
	void pin_increase_request_signal();		// pin数量增加
	void save_case_request_signal();		// 保存case
	void save_image_request_signal();		// 保存图片
	void write_pre_request_signal();		// 保存预处理结果
	void write_res_request_signal();		// 在预处理结果后面追加结果
	void PPTT_run_request_signal();			// PPDT运行
	void poly_run_request_signal();			// 多边形算法运行

private: //槽函数
	void paintChanged() {		// 绘图信息变化时触发，请求绘图更新
		emit update_request_signal();
	}

public:
	explicit OptionsPanel(ConfigUI* conf, QWidget* parent);
	~OptionsPanel();

private:
	Ui::OptionsPanelClass ui;
	BasicData* m_data;
	ConfigUI* m_config;			//配置信息

private:
	void styleInit();
	void setup_panelSlots();
};
